// pages/user/user.js
Page({
  data: {
    isLoggedIn: false, // 标识用户是否已登录
    userInfo: null,    // 存储用户信息
    defaultAvatar: '/images/default_avatar.png' // 默认头像路径
  },

  onShow: function () {
    // 每次进入页面都检查登录状态
    this.checkLoginStatus();
  },

  checkLoginStatus: function () {
    // 尝试从本地缓存获取用户信息和登录状态
    const userInfo = wx.getStorageSync('userInfo');
    const token = wx.getStorageSync('token'); // 假设登录成功后会有一个token
    if (userInfo && token) {
      this.setData({
        isLoggedIn: true,
        userInfo: userInfo
      });
    } else {
      this.setData({
        isLoggedIn: false,
        userInfo: null
      });
    }
  },

  // 微信登录
  login: function () {
    wx.getUserProfile({
      desc: '用于完善会员资料', // 声明获取用户个人信息后的用途，后续会展示在弹窗中，请谨慎填写
      success: (res) => {
        console.log("getUserProfile 成功", res.userInfo);
        const userInfo = res.userInfo;

        // 假设这里会发送用户信息到后端获取登录态（如 token）
        // 实际开发中，这里需要调用 wx.login 获取 code，然后将 code 和 userInfo 发送给后端
        // 后端验证后返回 token 等登录态信息
        wx.login({
          success: (loginRes) => {
            console.log("wx.login code:", loginRes.code);
            // 这里通常会将 loginRes.code 和 userInfo 发送到你的后端进行登录/注册
            // 示例：模拟后端登录成功并返回 token
            const fakeToken = 'your_mock_backend_token_' + Date.now(); // 模拟一个token

            // 将用户信息和 token 存入本地缓存
            wx.setStorageSync('userInfo', userInfo);
            wx.setStorageSync('token', fakeToken);

            this.setData({
              isLoggedIn: true,
              userInfo: userInfo
            });
            wx.showToast({
              title: '登录成功',
              icon: 'success'
            });
          },
          fail: (loginErr) => {
            console.error("wx.login 失败", loginErr);
            wx.showToast({
              title: '登录失败',
              icon: 'none'
            });
          }
        });
      },
      fail: (err) => {
        console.error("getUserProfile 失败", err);
        wx.showToast({
          title: '您取消了授权',
          icon: 'none'
        });
      }
    });
  },

  // 退出登录
  logout: function () {
    wx.showModal({
      title: '提示',
      content: '确定要退出登录吗？',
      success: (res) => {
        if (res.confirm) {
          wx.removeStorageSync('userInfo');
          wx.removeStorageSync('token'); // 移除登录态
          this.setData({
            isLoggedIn: false,
            userInfo: null
          });
          wx.showToast({
            title: '已退出登录',
            icon: 'success'
          });
          // 可以在这里跳转到首页或其他页面
          // wx.switchTab({
          //   url: '/pages/index/index',
          // });
        }
      }
    });
  },

  // 跳转到收货地址管理页面 (待实现)
  goToAddress: function () {
    if (!this.data.isLoggedIn) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }
    wx.navigateTo({
      url: '/pages/user/address/address', // 假设收货地址页面路径
      fail: (err) => {
        console.error('跳转收货地址失败', err);
        wx.showToast({
          title: '功能开发中',
          icon: 'none'
        });
      }
    });
  },

  // 跳转到个性化设置页面 (待实现)
  goToSettings: function () {
    if (!this.data.isLoggedIn) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }
    wx.navigateTo({
      url: '/pages/user/settings/settings', // 假设个性化设置页面路径
      fail: (err) => {
        console.error('跳转个性化设置失败', err);
        wx.showToast({
          title: '功能开发中',
          icon: 'none'
        });
      }
    });
  },

  // 跳转到我的订单页面 (待实现)
  goToOrders: function () {
    if (!this.data.isLoggedIn) {
      wx.showToast({
        title: '请先登录',
        icon: 'none'
      });
      return;
    }
    wx.navigateTo({
      url: '/pages/user/orders/orders', // 假设我的订单页面路径
      fail: (err) => {
        console.error('跳转我的订单失败', err);
        wx.showToast({
          title: '功能开发中',
          icon: 'none'
        });
      }
    });
  }
})